package controllers

import "log"

//新增结构体BaseController继承beego.Controller,为BaseController添加的Prepare() 方法。
//所有继承了BaseController的子controller 每次请求都会调用BaseController的Prepare()方法，
//因此咱们约定所有的子controller都会继承BaseController，可以将每次请求的通用逻辑写在BaseController的Prepare方法里面。

func (c *MainController) Get() {
	c.Data["Website"] = "beego.me"
	c.Data["Email"] = "astaxie@gmail.com"
	c.TplName = "index.tpl"
}

func (ctx *baseController) Prepare() {
	log.Println("BaseController")
	// 判断子类是否实现了NestPreparer接口，如果实现了就调用接口方法。
	if app, ok := ctx.AppController.(NestPreparer); ok {
		app.NestPrepare()
	}
}
